package com.hay.upload.filter;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * @title: LeyouCorsConfig
 * @Author HuangYan
 * @Date: 2020/7/17 21:20
 * @Version 1.0
 */
@Configuration
public class LeyouCorsConfig {

    @Bean
    public CorsFilter corsFilter(){
        // 为配置源创建一个CORS配置信息，并对配置信息进行设置(设置响应头信息)
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedOrigin("http://manager.leyou.com");   //设置允许跨域的源地址
        config.setAllowCredentials(true);   // 允许携带cookie
        config.addAllowedMethod("*");   // 允许所有的请求方式为跨域请求，如：GET、POST、PUT
        config.addAllowedHeader("*");   // 允许携带任何请求头信息
        // 创建一个配置源
        UrlBasedCorsConfigurationSource configurationSource = new UrlBasedCorsConfigurationSource();
        // 为配置源设置要拦截的请求，所有的请求都拦截判断是否为跨域请求
        configurationSource.registerCorsConfiguration("/**",config);
        // 返回一个CorsFilter
        return new CorsFilter(configurationSource);
    }
}
